package org.biubiu0002.baiblog.common.exception;

/**
 * @Author: biubiu0002
 * 规则：
 * 1.错误码定义规则为5位数字
 * 2.前两位表示业务场景，最后三位表示错误码，10 001 ：10表示统用，001系统未知异常
 * 3.维护错误码后需要维护错误描述，将他们定义位枚举
 * <p>
 * 10：统用
 * 001：参数格式校验
 * 002：短信验证码频率太高
 * <p>
 * 11：商品
 * 12：订单
 * 13：购物车：
 * 14：物流
 * @Date: 2022-02-07 16:57
 **/
public enum BizCodeEnumException {
    //通用错误码
    UNKNOWN_USER_EXCEPTION("A0001", "用户端错误"),
    ILLEGAL_INPUT_EXCEPTION("A0002", "输入参数有误，请检查参数"),
    INPUT_FORMAT_EXCEPTION("A0003", "输入格式有误，请检查输入格式"),
    HANDLER_NOT_FOUND_EXCEPTION("A0004", "路径不存在，请检查路径是否正确"),

    UNKNOWN_SERVER_EXCEPTION("B0001", "系统未知异常，请联系开发者"),
    INNER_INPUT_EXCEPTION("B0002", "内部传参有误"),
    DB_DUPLICATE_KEY_EXCEPTION("B0003", "数据库中已存在该记录"),
    RECORD_NOT_EXIST_EXCEPTION("B0004", "记录不存在"),

    UNKNOWN_THIRD_EXCEPTION("C0001", "第三方未知异常"),
    REDIS_NETWORK_ERROR("C0002", "Redis网络异常"),

    OAUTH_GITEE_CODE_ERROR("C0101","gitee临时凭证获取失败"),
    OAUTH_GITEE_TOKEN_ERROR("C0102","gitee token获取失败"),
    OAUTH_GITEE_USER_ERROR("C0103","获取gitee用户失败"),
    OAUTH_GITEE_REFRESH_TOKEN_ERROR("C0104","gitee refresh token异常"),
    OAUTH_GITEE_USERNAME_COLLISION_ERROR("C0105","gitee用户名冲突异常"),

    //用户认证鉴权
    LOGIN_FAIL_EXCEPTION("A0100", "用户不存在，或用户名密码错误，请检查用户名或密码"),
    NOT_LOGIN_EXCEPTION("A0101", "用户未登录，请先登录"),
    AUTHENTICATE_FAIL_EXCEPTION("A0102", "用户认证失败，登录已过期，请重新登录"),
    AUTHORIZE_FAIL_EXCEPTION("A0103", "抱歉您没有权限，请联系管理员"),
    USERNAME_EXISTED_EXCEPTION("A0104", "用户名已被注册"),
    PHONE_EXISTED_EXCEPTION("A0105", "手机号已被注册"),
    EMAIL_EXISTED_EXCEPTION("A0106", "邮箱已被注册"),
    REGISTER_ADMIN_SECRET_WRONG_EXCEPTION("A0107", "注册管理员所需密钥出错"),
    IN_BLACK_LIST_EXCEPTION("A0108", "你已经管理员拉黑，无法操作！"),
    //RBAC管理
    METHOD_EXIST_EXCEPTION("A0200", "方法全类名已存在"),

    //分享推文
    SHARE_NOT_EXIST_EXCEPTION("A0300", "分享不存在"),
    COMMENT_NOT_EXIST_EXCEPTION("A0301", "评论不存在"),
    UNABLE_LIKE_EXCEPTION("A0302", "分享不允许用户点赞"),
    UNABLE_COMMENT_EXCEPTION("A0303", "分享不允许用户评论"),
    UNABLE_FAVOR_EXCEPTION("A0304", "分享不允许用户收藏"),
    UNABLE_VIEW_EXCEPTION("A0305", "分享不允许其他用户查看"),

    //好友关系
    FOLLOW_SELF_EXCEPTION("A0401", "不可以关注自己~"),
    NO_FOLLOWS_EXCEPTION("A0402", "还没有关注任何人"),
    MAX_FOLLOW_COUNT_EXCEPTION("A0403", "用户关注人数不能超过1000"),
    USER_NOT_EXIST_EXCEPTION("A0404", "该用户不存在"),

    //群聊
    NOT_IN_GROUP_EXCEPTION("A0501","你不在该群聊中"),
    HAD_IN_GROUP_EXCEPTION("A0501","你已在该群聊中"),


    ;


    private String code;
    private String msg;

    BizCodeEnumException(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public String getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}
